Computer applications (or programs) are created using programming languages. These programming languages include human-readable text, which is translated by a compiler to generate machine-readable instructions. In particular, the compiler translates each line of the programming language into machine-readable instructions, which perform the logical task described by the line of programming language code.
During the course of programming, errors may occur due to programmer error. These errors include either syntax errors or logic errors. Syntax errors are caught by the compiler, which refuses to generate machine instructions for a line of programming language that it does not understand. Logic errors are caught by detecting that the application does not perform as expected, often resulting in program exceptions or incorrect behavior. While syntax errors can be corrected by determining the correct syntax, logic errors are often much more difficult to ascertain. For this reason, a special class of computer programs has been developed. These programs are called debuggers. One example of a debugger is described in U.S. Pat. No. 4,636,940, entitled “Logic Analyzer Using Source Programs Or Other User Defined Symbols In The Trace Specification And The Trace Listing”, issued Jan. 13, 1987, which is hereby incorporated herein by reference in its entirety. A debugger allows the user to trace through the user's own application, while it is executing on the computer, to determine the instance or instances where the logical flow of the application is incorrectly designed.
A debugger uses debugging information to debug, at runtime, the state of variables of the application. The debugging information describes how the variables of the application are stored and what fields the variables contain. Examples of techniques to generate debugging information are described in U.S. Pat. No. 5,715,460 entitled “Template Based Facility For Formatting Compiler Output,” issued Feb. 3, 1998; and U.S. Pat. No. 5,560,009, entitled “Generating Symbolic Debug Information by Merging Translation and Compiler Debug Information,” issued Sep. 24, 1996, each of which is hereby incorporated herein by reference in its entirety.
In one example, in order to obtain debugging information for a particular variable, the user enters the variable name into the debugger. However, often the variable name is complex and/or long, since it is typically generated by the compiler. Thus, it is useful to allow the user to create a simplified name (i.e., an alias) to reference the variable. This is especially true when the use of aliases is supported by the compiler and/or when the same application is to be debugged multiple times.
Although previous attempts have been made to allow, in certain limited circumstances, the use of aliases during debugging, a need still exists for an enhanced capability to facilitate the use of aliases during debugging. In particular, a need exists for a capability that facilitates the use of aliases during debugging, even when the aliases are not known to the debug generation stage of the compiler.